共计 1555 个字符,预计需要花费 4 分钟才能阅读完成。
引入
系统启动流程
- 计算机加电
- 开机自检(BIOS)
- MBR 主引导记录
- Grub 菜单
- 加载内核
在加载内核这一步会读取操作系统的运行级别
centos7 系统表面是有”运行级别“这个概念,实际上是为了兼容以前的系统
每个所谓的”运行级别“都有对应的软连接指向,默认的启动级别是 /etc/systemd/system/default.target
根据他的指向可以知道系统要进入哪个模式
一.systemd 与 init 简介
1.init
- init 进程是系统启动的第一个进程, PID 号为 1.
- init 进程的从它开始启动,并从下一个程序开始,都是以一个进程启动另一个进程的方式来进行 ( 串行)
- 这样做的显而易见的缺点就是执行速度慢,没有一整套的系统来管理
- 并且 /ect/ 目录下的随便一个脚本简直长的发指
- 关机过程差不多是相反的过程,首先 init 停止所有服务,最后阶段会卸载文件系统。
2. 于是 systemd 诞生了
- systemd 是有 Redhat 的一个员工首先提出来
3.systemd
- centos7 启动的第一个程序 systemd, PID 号为 0
- Systemd 系统管理守护进程
- systemd 几乎完全兼容传统的 SysV init 系统
- 作用: 减少系统引导时间与计算开销
- Systemd 引入了 并行 启动的概念
- 它在内核启动后,服务器什么的全部被 systemd 接管, 内核只是用来管理硬件资源,相当于 内核被架空 了
二. 系统启动级别
⛅运行级别 0: 系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
⛅运行级别 1: 单用户工作状态,root 权限,用于系统维护,禁止远程登陆
⛅运行级别 2: 多用户状态(没有 NFS)
⛅运行级别 3: 完全的多用户状态(有 NFS),登陆后进入控制台命令行模式
⛅运行级别 4: 系统未使用,保留
⛅运行级别 5: X11 控制台,登陆后进入图形 GUI 模式
⛅运行级别 6: 系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
三. 如何设置默认启动级别
1.init 命令
- 现在很多 Linux 系统都默认启动等级为 5。如果我们想切换系统等级,可使用
init
命令
python
# init 3 #多用户
- 这样就可以切换到多用户状态且带有网络文件系统了, 这种方式对于 CentOS7 也适用
- 但想修改默认启动级别,Centos 7 同其他 Linux 稍显不同了。
2.Centos 6 与 Centos 7 的不同
-
centos6 是通过修改
/etc/inittab
来修改默认运行级别的 -
在 centos7 下运行 vi /etc/inittab 结果如下👇👇👇
⛅可以看到,里面除了注释,什么也没有,并没有 centos6 中设置默认运行级别的方式
⛅但注释告诉了我们 启动级别 3(多用户) 和 启动级别 5(图形化操作界面) 的使用
⛅以及用 targets 替代 runlevels, 即 Centos 7 采用加载 targets 的方式替代之前的启动级别
3.Centos 7 启动级别文件及文件路径
- 在命令行输入 ls /usr/lib/systemd/system/
# ls /usr/lib/systemd/system/ #查看启动级别文件
4. 启动级别设置命令
- 查看当前默认启动的 target
# systemctl get-default
- 设置默认启动的 target
# systemctl set-default multi-user.target #设置多用户状态
# systemctl set-default graphical.target #修改为图形界面状态
.......................
.............
.....
5. 运行级别对应表
init 级别 | target |
---|---|
0 | shutdown.target |
1 | emergency.target |
2 | rescure.target |
3 |
multi-user.target |
4 | 系统未, 使用保留 |
5 |
grephical.target |
6 | reboot.target |
正文完